Add 'cratis render' as a root command - #70
Conversation
Renders a .play file, or every .play file beneath a folder, into a Cratis application on disk through the Stage renderer. What the document states but the rendered application cannot express goes to standard error rather than being dropped; a document the compiler rejects is not rendered at all. Does not work: the renderer package carries the Arc and Chronicle runtime and the template engine (Cratis/Stage#34), which forces three csproj workarounds here and still leaves the two hosted engines in conflict - MSBuildLocator requires no NuGet.Frameworks beside the executable, the template engine requires one. Committed unmerged so the command survives until that is fixed.
# Conflicts: # Directory.Packages.props
Cratis.Stage.Rendering.Cratis 2.4.0 no longer ships the Arc + Chronicle runtime or the template engine - scaffolding moved to its own package - so the three references that existed only to undo that come out: - Cratis, taken directly in both the CLI and its specs to keep the 28 global usings its build assets contribute out of the compilation - NuGet.Frameworks, excluded from runtime because the template engine brought it and MSBuildLocator refuses to start beside a copy of it (MSBL001) The resolved graph now holds no Cratis meta-package, no Cratis.Arc.*, no template engine and no NuGet.Frameworks - only the Screenplay, Chronicle and Stage packages the CLI references itself.
|
This branch was written earlier and held back deliberately: consuming the renderer cost three csproj workarounds, and one of them made rendering fail at run time. Stage 2.4.0 (Cratis/Stage#35) removed the cause, so the second commit here is the bump and the deletion of all three. What the workarounds were, and why they are gone.
The resolved graph now holds no Verification — the command was run, not just built. A green build and green specs are what this branch had while being incapable of rendering anything, so: The earlier figure was 33 files / 44 drops against a locally packed pre-#35 renderer. The delta is exactly what #35 adds, and it was checked rather than assumed: 1 specification now renders as a 446 specs against a 436 baseline, Release build zero warnings. Not verified: no rendered application has been booted against a live Chronicle, and no rendered specification executed. |
Added
cratis renderrenders a Screenplay document, or every document beneath a folder, into a Cratis application, reporting everything the document says that the rendered application does not carry.--targetchooses the directory, defaulting to./out(Add 'cratis render' as a root command for rendering a Screenplay solution #62)